package com.fowo.api.inventory.model;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;

import java.util.Map;

/**
 * 库存内流转 实体
 * @author yl_ls
 */
@Getter
@Setter
@Schema(title = "库存内流转 实体")
public class InventoryExchangeVo extends BaseInventoryItemVo {

    @Schema(title = "出库仓库内码")
    private Long fromStockId;

    @Schema(title = "入库仓库内码")
    private Long toStockId;

    //binIds: Map<库位内码, 入位数量>  可选，表示向指定库位入库
    @Schema(title = " Map<库位内码, 入位数量>  可选，表示向指定库位入库")
    private Map<Long,Integer> fromBinIds;

    @Schema(title = " Map<库位内码, 入位数量>  可选，表示向指定库位入库")
    private Map<Long,Integer> toBinIds;


    @Schema(title = "流转源类型\n" +
            "    - Normal : 正常库存\n" +
            "    - Lock: 锁定库存\n" +
            "    - Display: 展示库存\n" +
            "    - Defect: 残次库存\n" +
            "    - Way: 在途库存")
    private TargetTypeEnum from;
    @Schema(title = "流转目标类型\n" +
            "    - Normal : 正常库存\n" +
            "    - Lock: 锁定库存\n" +
            "    - Display: 展示库存\n" +
            "    - Defect: 残次库存\n" +
            "    - Way: 在途库存")
    private TargetTypeEnum to;
    @Schema(title = "选择模式\n" +
            "    - LIFO: 后进先出\n" +
            "    - FIFO: 先进先出\n" +
            "    - ExpiryEarlier: 近有效期先出\"不新鲜\"\n" +
            "    - ExpiryLater: 远有效期先出\"新鲜\"" )
    private PatternEnum model;

    @Schema(title = "库位流转源类型\n" +
            "    - Normal : 正常库存\n" +
            "    - Lock: 锁定库存\n"
            )
    private TargetTypeEnum fromBinIdsType;
    @Schema(title = "库位流转源类型\n" +
            "    - Normal : 正常库存\n" +
            "    - Lock: 锁定库存\n")
    private TargetTypeEnum toBinIdsType;
    @Schema(title = "用户数据，此数据直接保存到库存变动表内，不做其它处理")
    private String userData1;

    @Schema(title = "用户数据，此数据直接保存到库存变动表内，不做其它处理")
    private String userData2;

    @Schema(title = "用户数据，此数据直接保存到库存变动表内，不做其它处理")
    private String userData3;

    @Schema(title = "用户数据，此数据直接保存到库存变动表内，不做其它处理")
    private String userData4;

    @Schema(title = "用户数据，此数据直接保存到库存变动表内，不做其它处理")
    private String userData5;

    @Schema(title = "用户数据，此数据直接保存到库存变动表内，不做其它处理")
    private String userData6;

    @Schema(title = "用户数据，此数据直接保存到库存变动表内，不做其它处理")
    private String userData7;

    @Schema(title = "用户数据，此数据直接保存到库存变动表内，不做其它处理")
    private String userData8;
}
